<?php

class AtributoValidoValidator extends sfValidatorBase{
	protected function configure($options = array(), $messages = array()) {
		$this->addOption('campos');
		$this->addOption('atributos');
		$this->addOption('clase');
	}
	
	public function doClean($value){
		foreach ($this->getOption('campos') as $equipo_id){
			$equipo = Doctrine_Core::getTable($this->getOption('clase'))->find($value[$equipo_id]);
			if ($equipo != null){
				foreach ($this->getOption('atributos') as $nombre_atributo){
					if ($equipo[$nombre_atributo] != $value[$nombre_atributo]){
						throw new sfValidatorError($this, 'invalid', array('value' => $value, 'atributo' => $nombre_atributo));
					}
				}
			}
		}
		return $value;
	}
}
